0 JBC
↳1 JBC2FIG (⇐)
↳2 FIGraph
↳3 FIGtoITRSProof (⇐)
↳4 AND
↳5 ITRS
↳6 ITRStoIDPProof (⇔)
↳7 IDP
↳8 UsableRulesProof (⇔)
↳9 IDP
↳10 ItpfGraphProof (⇔)
↳11 IDP
↳12 IDPNonInfProof (⇐)
↳13 IDP
↳14 IDependencyGraphProof (⇔)
↳15 TRUE
↳16 ITRS
↳17 ITRStoIDPProof (⇔)
↳18 IDP
↳19 UsableRulesProof (⇔)
↳20 IDP
↳21 ItpfGraphProof (⇔)
↳22 IDP
↳23 IDPNonInfProof (⇐)
↳24 AND
↳25 IDP
↳26 IDependencyGraphProof (⇔)
↳27 TRUE
↳28 IDP
↳29 IDependencyGraphProof (⇔)
↳30 TRUE
No human-readable program information known.
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer
(0) -> (1), if ((java.lang.Object(IntList(o588[0], i91[0])) →* java.lang.Object(IntList(o588[1], i91[1])))∧(i91[0] > 0 →* TRUE))
(1) -> (0), if ((java.lang.Object(IntList(o588[1], i91[1] - 1)) →* java.lang.Object(IntList(o588[0], i91[0]))))
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer
(0) -> (1), if ((java.lang.Object(IntList(o588[0], i91[0])) →* java.lang.Object(IntList(o588[1], i91[1])))∧(i91[0] > 0 →* TRUE))
(1) -> (0), if ((java.lang.Object(IntList(o588[1], i91[1] - 1)) →* java.lang.Object(IntList(o588[0], i91[0]))))
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer
(0) -> (1), if (((o588[0] →* o588[1])∧(i91[0] →* i91[1]))∧(i91[0] > 0 →* TRUE))
(1) -> (0), if (((o588[1] →* o588[0])∧(i91[1] - 1 →* i91[0])))
(1) (o588[0]=o588[1]∧i91[0]=i91[1]∧>(i91[0], 0)=TRUE ⇒ LOAD843(java.lang.Object(IntList(o588[0], i91[0])))≥NonInfC∧LOAD843(java.lang.Object(IntList(o588[0], i91[0])))≥COND_LOAD843(>(i91[0], 0), java.lang.Object(IntList(o588[0], i91[0])))∧(UIncreasing(COND_LOAD843(>(i91[0], 0), java.lang.Object(IntList(o588[0], i91[0])))), ≥))
(2) (>(i91[0], 0)=TRUE ⇒ LOAD843(java.lang.Object(IntList(o588[0], i91[0])))≥NonInfC∧LOAD843(java.lang.Object(IntList(o588[0], i91[0])))≥COND_LOAD843(>(i91[0], 0), java.lang.Object(IntList(o588[0], i91[0])))∧(UIncreasing(COND_LOAD843(>(i91[0], 0), java.lang.Object(IntList(o588[0], i91[0])))), ≥))
(3) (i91[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD843(>(i91[0], 0), java.lang.Object(IntList(o588[0], i91[0])))), ≥)∧[bni_11 + (-1)Bound*bni_11] + [bni_11]i91[0] ≥ 0∧[1 + (-1)bso_12] ≥ 0)
(4) (i91[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD843(>(i91[0], 0), java.lang.Object(IntList(o588[0], i91[0])))), ≥)∧[bni_11 + (-1)Bound*bni_11] + [bni_11]i91[0] ≥ 0∧[1 + (-1)bso_12] ≥ 0)
(5) (i91[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD843(>(i91[0], 0), java.lang.Object(IntList(o588[0], i91[0])))), ≥)∧[bni_11 + (-1)Bound*bni_11] + [bni_11]i91[0] ≥ 0∧[1 + (-1)bso_12] ≥ 0)
(6) (i91[0] + [-1] ≥ 0 ⇒ (UIncreasing(COND_LOAD843(>(i91[0], 0), java.lang.Object(IntList(o588[0], i91[0])))), ≥)∧0 = 0∧[bni_11 + (-1)Bound*bni_11] + [bni_11]i91[0] ≥ 0∧0 = 0∧[1 + (-1)bso_12] ≥ 0)
(7) (i91[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD843(>(i91[0], 0), java.lang.Object(IntList(o588[0], i91[0])))), ≥)∧0 = 0∧[(2)bni_11 + (-1)Bound*bni_11] + [bni_11]i91[0] ≥ 0∧0 = 0∧[1 + (-1)bso_12] ≥ 0)
(8) (COND_LOAD843(TRUE, java.lang.Object(IntList(o588[1], i91[1])))≥NonInfC∧COND_LOAD843(TRUE, java.lang.Object(IntList(o588[1], i91[1])))≥LOAD843(java.lang.Object(IntList(o588[1], -(i91[1], 1))))∧(UIncreasing(LOAD843(java.lang.Object(IntList(o588[1], -(i91[1], 1))))), ≥))
(9) ((UIncreasing(LOAD843(java.lang.Object(IntList(o588[1], -(i91[1], 1))))), ≥)∧[(-1)bso_14] ≥ 0)
(10) ((UIncreasing(LOAD843(java.lang.Object(IntList(o588[1], -(i91[1], 1))))), ≥)∧[(-1)bso_14] ≥ 0)
(11) ((UIncreasing(LOAD843(java.lang.Object(IntList(o588[1], -(i91[1], 1))))), ≥)∧[(-1)bso_14] ≥ 0)
(12) ((UIncreasing(LOAD843(java.lang.Object(IntList(o588[1], -(i91[1], 1))))), ≥)∧0 = 0∧0 = 0∧[(-1)bso_14] ≥ 0)
POL(TRUE) = 0
POL(FALSE) = 0
POL(LOAD843(x1)) = [-1]x1
POL(java.lang.Object(x1)) = x1
POL(IntList(x1, x2)) = [-1] + [-1]x2
POL(COND_LOAD843(x1, x2)) = [-1] + [-1]x2
POL(>(x1, x2)) = [-1]
POL(0) = 0
POL(-(x1, x2)) = x1 + [-1]x2
POL(1) = [1]
LOAD843(java.lang.Object(IntList(o588[0], i91[0]))) → COND_LOAD843(>(i91[0], 0), java.lang.Object(IntList(o588[0], i91[0])))
LOAD843(java.lang.Object(IntList(o588[0], i91[0]))) → COND_LOAD843(>(i91[0], 0), java.lang.Object(IntList(o588[0], i91[0])))
COND_LOAD843(TRUE, java.lang.Object(IntList(o588[1], i91[1]))) → LOAD843(java.lang.Object(IntList(o588[1], -(i91[1], 1))))
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Boolean, Integer
(0) -> (1), if ((java.lang.Object(java.lang.String(i138[0], i137[0], i139[0], a910[0])) →* java.lang.Object(java.lang.String(i138[1], i137[1], i139[1], a910[1])))∧(java.lang.Object(ARRAY(i2[0], a689data[0])) →* java.lang.Object(ARRAY(i2[1], a689data[1])))∧(i79[0] →* i79[1])∧(i75[0] →* i75[1]))
(1) -> (2), if ((java.lang.Object(java.lang.String(i138[1], i137[1], i139[1], a910[1])) →* java.lang.Object(java.lang.String(i138[2], i137[2], i139[2], a910[2])))∧(i75[1] →* i75[2])∧(i75[1] > 0 && i75[1] < i2[1] && i79[1] > 0 && i75[1] + 1 > 0 →* TRUE)∧(java.lang.Object(ARRAY(i2[1], a689data[1])) →* java.lang.Object(ARRAY(i2[2], a689data[2])))∧(i79[1] →* i79[2]))
(2) -> (0), if ((i75[2] + 1 →* i75[0])∧(i79[2] + -1 →* i79[0])∧(java.lang.Object(ARRAY(i2[2], a689data[2])) →* java.lang.Object(ARRAY(i2[0], a689data[0]))))
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Boolean, Integer
(0) -> (1), if ((java.lang.Object(java.lang.String(i138[0], i137[0], i139[0], a910[0])) →* java.lang.Object(java.lang.String(i138[1], i137[1], i139[1], a910[1])))∧(java.lang.Object(ARRAY(i2[0], a689data[0])) →* java.lang.Object(ARRAY(i2[1], a689data[1])))∧(i79[0] →* i79[1])∧(i75[0] →* i75[1]))
(1) -> (2), if ((java.lang.Object(java.lang.String(i138[1], i137[1], i139[1], a910[1])) →* java.lang.Object(java.lang.String(i138[2], i137[2], i139[2], a910[2])))∧(i75[1] →* i75[2])∧(i75[1] > 0 && i75[1] < i2[1] && i79[1] > 0 && i75[1] + 1 > 0 →* TRUE)∧(java.lang.Object(ARRAY(i2[1], a689data[1])) →* java.lang.Object(ARRAY(i2[2], a689data[2])))∧(i79[1] →* i79[2]))
(2) -> (0), if ((i75[2] + 1 →* i75[0])∧(i79[2] + -1 →* i79[0])∧(java.lang.Object(ARRAY(i2[2], a689data[2])) →* java.lang.Object(ARRAY(i2[0], a689data[0]))))
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Boolean, Integer
(0) -> (1), if (((i138[0] →* i138[1])∧(i137[0] →* i137[1])∧(i139[0] →* i139[1])∧(a910[0] →* a910[1]))∧((i2[0] →* i2[1])∧(a689data[0] →* a689data[1]))∧(i79[0] →* i79[1])∧(i75[0] →* i75[1]))
(1) -> (2), if (((i138[1] →* i138[2])∧(i137[1] →* i137[2])∧(i139[1] →* i139[2])∧(a910[1] →* a910[2]))∧(i75[1] →* i75[2])∧(i75[1] > 0 && i75[1] < i2[1] && i79[1] > 0 && i75[1] + 1 > 0 →* TRUE)∧((i2[1] →* i2[2])∧(a689data[1] →* a689data[2]))∧(i79[1] →* i79[2]))
(2) -> (0), if ((i75[2] + 1 →* i75[0])∧(i79[2] + -1 →* i79[0])∧((i2[2] →* i2[0])∧(a689data[2] →* a689data[0])))
(1) (LOAD823(java.lang.Object(ARRAY(i2[0], a689data[0])), i75[0], i79[0])≥NonInfC∧LOAD823(java.lang.Object(ARRAY(i2[0], a689data[0])), i75[0], i79[0])≥LOAD823ARR1(java.lang.Object(ARRAY(i2[0], a689data[0])), i75[0], i79[0], java.lang.Object(java.lang.String(i138[0], i137[0], i139[0], a910[0])))∧(UIncreasing(LOAD823ARR1(java.lang.Object(ARRAY(i2[0], a689data[0])), i75[0], i79[0], java.lang.Object(java.lang.String(i138[0], i137[0], i139[0], a910[0])))), ≥))
(2) ((UIncreasing(LOAD823ARR1(java.lang.Object(ARRAY(i2[0], a689data[0])), i75[0], i79[0], java.lang.Object(java.lang.String(i138[0], i137[0], i139[0], a910[0])))), ≥)∧[(-1)bso_17] ≥ 0)
(3) ((UIncreasing(LOAD823ARR1(java.lang.Object(ARRAY(i2[0], a689data[0])), i75[0], i79[0], java.lang.Object(java.lang.String(i138[0], i137[0], i139[0], a910[0])))), ≥)∧[(-1)bso_17] ≥ 0)
(4) ((UIncreasing(LOAD823ARR1(java.lang.Object(ARRAY(i2[0], a689data[0])), i75[0], i79[0], java.lang.Object(java.lang.String(i138[0], i137[0], i139[0], a910[0])))), ≥)∧[(-1)bso_17] ≥ 0)
(5) ((UIncreasing(LOAD823ARR1(java.lang.Object(ARRAY(i2[0], a689data[0])), i75[0], i79[0], java.lang.Object(java.lang.String(i138[0], i137[0], i139[0], a910[0])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_17] ≥ 0)
(6) (i138[1]=i138[2]∧i137[1]=i137[2]∧i139[1]=i139[2]∧a910[1]=a910[2]∧i75[1]=i75[2]∧&&(&&(&&(>(i75[1], 0), <(i75[1], i2[1])), >(i79[1], 0)), >(+(i75[1], 1), 0))=TRUE∧i2[1]=i2[2]∧a689data[1]=a689data[2]∧i79[1]=i79[2] ⇒ LOAD823ARR1(java.lang.Object(ARRAY(i2[1], a689data[1])), i75[1], i79[1], java.lang.Object(java.lang.String(i138[1], i137[1], i139[1], a910[1])))≥NonInfC∧LOAD823ARR1(java.lang.Object(ARRAY(i2[1], a689data[1])), i75[1], i79[1], java.lang.Object(java.lang.String(i138[1], i137[1], i139[1], a910[1])))≥COND_LOAD823ARR1(&&(&&(&&(>(i75[1], 0), <(i75[1], i2[1])), >(i79[1], 0)), >(+(i75[1], 1), 0)), java.lang.Object(ARRAY(i2[1], a689data[1])), i75[1], i79[1], java.lang.Object(java.lang.String(i138[1], i137[1], i139[1], a910[1])))∧(UIncreasing(COND_LOAD823ARR1(&&(&&(&&(>(i75[1], 0), <(i75[1], i2[1])), >(i79[1], 0)), >(+(i75[1], 1), 0)), java.lang.Object(ARRAY(i2[1], a689data[1])), i75[1], i79[1], java.lang.Object(java.lang.String(i138[1], i137[1], i139[1], a910[1])))), ≥))
(7) (>(+(i75[1], 1), 0)=TRUE∧>(i79[1], 0)=TRUE∧>(i75[1], 0)=TRUE∧<(i75[1], i2[1])=TRUE ⇒ LOAD823ARR1(java.lang.Object(ARRAY(i2[1], a689data[1])), i75[1], i79[1], java.lang.Object(java.lang.String(i138[1], i137[1], i139[1], a910[1])))≥NonInfC∧LOAD823ARR1(java.lang.Object(ARRAY(i2[1], a689data[1])), i75[1], i79[1], java.lang.Object(java.lang.String(i138[1], i137[1], i139[1], a910[1])))≥COND_LOAD823ARR1(&&(&&(&&(>(i75[1], 0), <(i75[1], i2[1])), >(i79[1], 0)), >(+(i75[1], 1), 0)), java.lang.Object(ARRAY(i2[1], a689data[1])), i75[1], i79[1], java.lang.Object(java.lang.String(i138[1], i137[1], i139[1], a910[1])))∧(UIncreasing(COND_LOAD823ARR1(&&(&&(&&(>(i75[1], 0), <(i75[1], i2[1])), >(i79[1], 0)), >(+(i75[1], 1), 0)), java.lang.Object(ARRAY(i2[1], a689data[1])), i75[1], i79[1], java.lang.Object(java.lang.String(i138[1], i137[1], i139[1], a910[1])))), ≥))
(8) (i75[1] ≥ 0∧i79[1] + [-1] ≥ 0∧i75[1] + [-1] ≥ 0∧i2[1] + [-1] + [-1]i75[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD823ARR1(&&(&&(&&(>(i75[1], 0), <(i75[1], i2[1])), >(i79[1], 0)), >(+(i75[1], 1), 0)), java.lang.Object(ARRAY(i2[1], a689data[1])), i75[1], i79[1], java.lang.Object(java.lang.String(i138[1], i137[1], i139[1], a910[1])))), ≥)∧[(2)bni_18 + (-1)Bound*bni_18] + [bni_18]i79[1] + [(-1)bni_18]i75[1] + [bni_18]i2[1] ≥ 0∧[(-1)bso_19] ≥ 0)
(9) (i75[1] ≥ 0∧i79[1] + [-1] ≥ 0∧i75[1] + [-1] ≥ 0∧i2[1] + [-1] + [-1]i75[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD823ARR1(&&(&&(&&(>(i75[1], 0), <(i75[1], i2[1])), >(i79[1], 0)), >(+(i75[1], 1), 0)), java.lang.Object(ARRAY(i2[1], a689data[1])), i75[1], i79[1], java.lang.Object(java.lang.String(i138[1], i137[1], i139[1], a910[1])))), ≥)∧[(2)bni_18 + (-1)Bound*bni_18] + [bni_18]i79[1] + [(-1)bni_18]i75[1] + [bni_18]i2[1] ≥ 0∧[(-1)bso_19] ≥ 0)
(10) (i75[1] ≥ 0∧i79[1] + [-1] ≥ 0∧i75[1] + [-1] ≥ 0∧i2[1] + [-1] + [-1]i75[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD823ARR1(&&(&&(&&(>(i75[1], 0), <(i75[1], i2[1])), >(i79[1], 0)), >(+(i75[1], 1), 0)), java.lang.Object(ARRAY(i2[1], a689data[1])), i75[1], i79[1], java.lang.Object(java.lang.String(i138[1], i137[1], i139[1], a910[1])))), ≥)∧[(2)bni_18 + (-1)Bound*bni_18] + [bni_18]i79[1] + [(-1)bni_18]i75[1] + [bni_18]i2[1] ≥ 0∧[(-1)bso_19] ≥ 0)
(11) (i75[1] ≥ 0∧i79[1] + [-1] ≥ 0∧i75[1] + [-1] ≥ 0∧i2[1] + [-1] + [-1]i75[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD823ARR1(&&(&&(&&(>(i75[1], 0), <(i75[1], i2[1])), >(i79[1], 0)), >(+(i75[1], 1), 0)), java.lang.Object(ARRAY(i2[1], a689data[1])), i75[1], i79[1], java.lang.Object(java.lang.String(i138[1], i137[1], i139[1], a910[1])))), ≥)∧0 = 0∧[(2)bni_18 + (-1)Bound*bni_18] + [bni_18]i79[1] + [(-1)bni_18]i75[1] + [bni_18]i2[1] ≥ 0∧0 = 0∧[(-1)bso_19] ≥ 0)
(12) ([1] + i75[1] ≥ 0∧i79[1] + [-1] ≥ 0∧i75[1] ≥ 0∧i2[1] + [-2] + [-1]i75[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD823ARR1(&&(&&(&&(>(i75[1], 0), <(i75[1], i2[1])), >(i79[1], 0)), >(+(i75[1], 1), 0)), java.lang.Object(ARRAY(i2[1], a689data[1])), i75[1], i79[1], java.lang.Object(java.lang.String(i138[1], i137[1], i139[1], a910[1])))), ≥)∧0 = 0∧[bni_18 + (-1)Bound*bni_18] + [bni_18]i79[1] + [(-1)bni_18]i75[1] + [bni_18]i2[1] ≥ 0∧0 = 0∧[(-1)bso_19] ≥ 0)
(13) ([1] + i75[1] ≥ 0∧i79[1] ≥ 0∧i75[1] ≥ 0∧i2[1] + [-2] + [-1]i75[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD823ARR1(&&(&&(&&(>(i75[1], 0), <(i75[1], i2[1])), >(i79[1], 0)), >(+(i75[1], 1), 0)), java.lang.Object(ARRAY(i2[1], a689data[1])), i75[1], i79[1], java.lang.Object(java.lang.String(i138[1], i137[1], i139[1], a910[1])))), ≥)∧0 = 0∧[(2)bni_18 + (-1)Bound*bni_18] + [bni_18]i79[1] + [(-1)bni_18]i75[1] + [bni_18]i2[1] ≥ 0∧0 = 0∧[(-1)bso_19] ≥ 0)
(14) ([1] + i75[1] ≥ 0∧i79[1] ≥ 0∧i75[1] ≥ 0∧i2[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD823ARR1(&&(&&(&&(>(i75[1], 0), <(i75[1], i2[1])), >(i79[1], 0)), >(+(i75[1], 1), 0)), java.lang.Object(ARRAY(i2[1], a689data[1])), i75[1], i79[1], java.lang.Object(java.lang.String(i138[1], i137[1], i139[1], a910[1])))), ≥)∧0 = 0∧[(4)bni_18 + (-1)Bound*bni_18] + [bni_18]i79[1] + [bni_18]i2[1] ≥ 0∧0 = 0∧[(-1)bso_19] ≥ 0)
(15) (COND_LOAD823ARR1(TRUE, java.lang.Object(ARRAY(i2[2], a689data[2])), i75[2], i79[2], java.lang.Object(java.lang.String(i138[2], i137[2], i139[2], a910[2])))≥NonInfC∧COND_LOAD823ARR1(TRUE, java.lang.Object(ARRAY(i2[2], a689data[2])), i75[2], i79[2], java.lang.Object(java.lang.String(i138[2], i137[2], i139[2], a910[2])))≥LOAD823(java.lang.Object(ARRAY(i2[2], a689data[2])), +(i75[2], 1), +(i79[2], -1))∧(UIncreasing(LOAD823(java.lang.Object(ARRAY(i2[2], a689data[2])), +(i75[2], 1), +(i79[2], -1))), ≥))
(16) ((UIncreasing(LOAD823(java.lang.Object(ARRAY(i2[2], a689data[2])), +(i75[2], 1), +(i79[2], -1))), ≥)∧[2 + (-1)bso_21] ≥ 0)
(17) ((UIncreasing(LOAD823(java.lang.Object(ARRAY(i2[2], a689data[2])), +(i75[2], 1), +(i79[2], -1))), ≥)∧[2 + (-1)bso_21] ≥ 0)
(18) ((UIncreasing(LOAD823(java.lang.Object(ARRAY(i2[2], a689data[2])), +(i75[2], 1), +(i79[2], -1))), ≥)∧[2 + (-1)bso_21] ≥ 0)
(19) ((UIncreasing(LOAD823(java.lang.Object(ARRAY(i2[2], a689data[2])), +(i75[2], 1), +(i79[2], -1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_21] ≥ 0)
POL(TRUE) = 0
POL(FALSE) = 0
POL(LOAD823(x1, x2, x3)) = [1] + x3 + [-1]x2 + [-1]x1
POL(java.lang.Object(x1)) = x1
POL(ARRAY(x1, x2)) = [-1] + [-1]x1
POL(LOAD823ARR1(x1, x2, x3, x4)) = [1] + x3 + [-1]x2 + [-1]x1
POL(java.lang.String(x1, x2, x3, x4)) = [-1]
POL(COND_LOAD823ARR1(x1, x2, x3, x4, x5)) = [1] + x4 + [-1]x3 + [-1]x2
POL(&&(x1, x2)) = [-1]
POL(>(x1, x2)) = [-1]
POL(0) = 0
POL(<(x1, x2)) = [-1]
POL(+(x1, x2)) = x1 + x2
POL(1) = [1]
POL(-1) = [-1]
COND_LOAD823ARR1(TRUE, java.lang.Object(ARRAY(i2[2], a689data[2])), i75[2], i79[2], java.lang.Object(java.lang.String(i138[2], i137[2], i139[2], a910[2]))) → LOAD823(java.lang.Object(ARRAY(i2[2], a689data[2])), +(i75[2], 1), +(i79[2], -1))
LOAD823ARR1(java.lang.Object(ARRAY(i2[1], a689data[1])), i75[1], i79[1], java.lang.Object(java.lang.String(i138[1], i137[1], i139[1], a910[1]))) → COND_LOAD823ARR1(&&(&&(&&(>(i75[1], 0), <(i75[1], i2[1])), >(i79[1], 0)), >(+(i75[1], 1), 0)), java.lang.Object(ARRAY(i2[1], a689data[1])), i75[1], i79[1], java.lang.Object(java.lang.String(i138[1], i137[1], i139[1], a910[1])))
LOAD823(java.lang.Object(ARRAY(i2[0], a689data[0])), i75[0], i79[0]) → LOAD823ARR1(java.lang.Object(ARRAY(i2[0], a689data[0])), i75[0], i79[0], java.lang.Object(java.lang.String(i138[0], i137[0], i139[0], a910[0])))
LOAD823ARR1(java.lang.Object(ARRAY(i2[1], a689data[1])), i75[1], i79[1], java.lang.Object(java.lang.String(i138[1], i137[1], i139[1], a910[1]))) → COND_LOAD823ARR1(&&(&&(&&(>(i75[1], 0), <(i75[1], i2[1])), >(i79[1], 0)), >(+(i75[1], 1), 0)), java.lang.Object(ARRAY(i2[1], a689data[1])), i75[1], i79[1], java.lang.Object(java.lang.String(i138[1], i137[1], i139[1], a910[1])))
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Boolean, Integer
(0) -> (1), if (((i138[0] →* i138[1])∧(i137[0] →* i137[1])∧(i139[0] →* i139[1])∧(a910[0] →* a910[1]))∧((i2[0] →* i2[1])∧(a689data[0] →* a689data[1]))∧(i79[0] →* i79[1])∧(i75[0] →* i75[1]))
!= | ~ | Neq: (Integer, Integer) -> Boolean |
* | ~ | Mul: (Integer, Integer) -> Integer |
>= | ~ | Ge: (Integer, Integer) -> Boolean |
-1 | ~ | UnaryMinus: (Integer) -> Integer |
| | ~ | Bwor: (Integer, Integer) -> Integer |
/ | ~ | Div: (Integer, Integer) -> Integer |
= | ~ | Eq: (Integer, Integer) -> Boolean |
~ | Bwxor: (Integer, Integer) -> Integer | |
|| | ~ | Lor: (Boolean, Boolean) -> Boolean |
! | ~ | Lnot: (Boolean) -> Boolean |
< | ~ | Lt: (Integer, Integer) -> Boolean |
- | ~ | Sub: (Integer, Integer) -> Integer |
<= | ~ | Le: (Integer, Integer) -> Boolean |
> | ~ | Gt: (Integer, Integer) -> Boolean |
~ | ~ | Bwnot: (Integer) -> Integer |
% | ~ | Mod: (Integer, Integer) -> Integer |
& | ~ | Bwand: (Integer, Integer) -> Integer |
+ | ~ | Add: (Integer, Integer) -> Integer |
&& | ~ | Land: (Boolean, Boolean) -> Boolean |
Integer
(2) -> (0), if ((i75[2] + 1 →* i75[0])∧(i79[2] + -1 →* i79[0])∧((i2[2] →* i2[0])∧(a689data[2] →* a689data[0])))